From 7c6274d46fd4285ebcd0f1c1dd3d229df30fbb44 Mon Sep 17 00:00:00 2001 From: Factiven Date: Mon, 22 May 2023 13:11:45 +0700 Subject: Update v3.6.0 > We switch back to gogo as a source and this will fix the video won't play on iOS devices > Removed subtitle function since gogo doesn't provide external subtitle --- pages/anime/watch/[...info].js | 176 ++++++----------------------------------- 1 file changed, 26 insertions(+), 150 deletions(-) (limited to 'pages/anime/watch/[...info].js') diff --git a/pages/anime/watch/[...info].js b/pages/anime/watch/[...info].js index 5c2e460..1350ce8 100644 --- a/pages/anime/watch/[...info].js +++ b/pages/anime/watch/[...info].js @@ -1,6 +1,5 @@ import Image from "next/image"; import Link from "next/link"; -import { closestMatch } from "closest-match"; import Head from "next/head"; import { useEffect, useState } from "react"; import dynamic from "next/dynamic"; @@ -24,7 +23,6 @@ const VideoPlayer = dynamic(() => export default function Info({ sessions, id, aniId, provider, proxy }) { const [epiData, setEpiData] = useState(null); const [data, setAniData] = useState(null); - const [fallback, setEpiFallback] = useState(null); const [skip, setSkip] = useState({ op: null, ed: null }); const [statusWatch, setStatusWatch] = useState("CURRENT"); const [playingEpisode, setPlayingEpisode] = useState(null); @@ -32,6 +30,8 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { const [playingTitle, setPlayingTitle] = useState(null); const [poster, setPoster] = useState(null); + const [episodes, setEpisodes] = useState([]); + const router = useRouter(); useEffect(() => { @@ -64,8 +64,6 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { }); const fetchData = async () => { - // setLoading(true); - let epiFallback = null; try { if (provider) { @@ -76,7 +74,7 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { setEpiData(epiData); } else { const res = await fetch( - `https://api.moopa.my.id/meta/anilist/watch/${id}?provider=zoro` + `https://api.moopa.my.id/meta/anilist/watch/${id}` ); const epiData = await res.json(); setEpiData(epiData); @@ -97,46 +95,20 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { setAniData(aniData); } else { const res2 = await fetch( - `https://api.moopa.my.id/meta/anilist/info/${aniId}?provider=zoro` + `https://api.moopa.my.id/meta/anilist/info/${aniId}` ); aniData = await res2.json(); + setEpisodes(aniData.episodes?.reverse()); setAniData(aniData); } - if (aniData.episodes.length === 0) { - const res = await fetch( - `https://api.moopa.my.id/anime/gogoanime/${ - aniData.title.romaji || aniData.title.english - }` - ); - const data = await res.json(); - const release = data.results.map((i) => i.releaseDate); - - const match = closestMatch(aniData.startDate.year, release); - const anime = data.results.find((i) => i.releaseDate === match); - if (anime.length !== 0) { - const infos = await fetch( - `https://api.moopa.my.id/anime/gogoanime/info/${anime.id}` - ).then((res) => res.json()); - epiFallback = infos.episodes; - } - setEpiFallback(epiFallback); - } - let playingEpisode = aniData.episodes .filter((item) => item.id == id) .map((item) => item.number); - if (aniData.episodes.length === 0) { - playingEpisode = epiFallback - .filter((item) => item.id == id) - .map((item) => item.number); - } - setPlayingEpisode(playingEpisode); const playing = aniData.episodes.filter((item) => item.id == id); - // .map((item) => item.); setPoster(playing); @@ -290,7 +262,7 @@ export default function Info({ sessions, id, aniId, provider, proxy }) {
{loading ? ( -
+
)}
- {data ? ( - data.episodes.length > 0 ? ( + { + data && data?.episodes.length > 0 ? ( data.episodes .filter((items) => items.id == id) .map((item, index) => ( @@ -389,87 +361,6 @@ export default function Info({ sessions, id, aniId, provider, proxy }) {
)) - ) : ( - <> - {fallback && - fallback - .filter((item) => item.id == id) - .map((item) => ( -
-
-
- - {data.title.romaji || data.title.english} - -
-

- Episode {item.number} -

-
-
-
- - -
- -
-
- ))} - - ) ) : (
@@ -492,6 +383,7 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { alt="Anime Cover" width={1000} height={1000} + priority className="object-cover aspect-[9/13] h-[240px] rounded-md" /> ) : ( @@ -581,12 +473,12 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { Up Next
- {data ? ( - data.episodes.length > 0 ? ( + { + data && data?.episodes.length > 0 ? ( data.episodes.some( (item) => item.title && item.description ) ? ( - data.episodes.map((item) => { + episodes.map((item) => { return ( -
- image +
+
+ Anime Cover +
Episode {item.number} @@ -661,24 +555,6 @@ export default function Info({ sessions, id, aniId, provider, proxy }) { ); }) ) - ) : ( - fallback && - fallback.map((item) => { - return ( - - Episode {item.number} - - ); - }) - ) ) : ( <> {[1].map((item) => ( -- cgit v1.2.3